package com.blumov.fastbox.webservices.parsers;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.NotImplementedException;

import com.blumov.fastbox.compra.BandejaDTO;
import com.blumov.fastbox.producto.ProductoDTO;

/**
 * Parser para convertir los productos/promociones hacia y desde el webservice 
 * 
 * @author Bruno Masci
 *
 */
public class ProductoParser implements Parser<List<ProductoDTO>> {
	
	/**
	 * Simbolo utilizado para separar el codigo de una promocion de su precio
	 */
	private final static char SEPARADOR_PROMOCION_PRECIO = '|';
	
	/**
	 * Simbolo utilizado para separar cada promocion
	 */
	private final static char SEPARADOR_PROMOCIONES = '#';

	
	
	/**
	 * Default constructor
	 */
	public ProductoParser() {

	}
	
	/**
	 * Convierte un producto/promocion en un conjunto de {@link ProductoDTO}
	 */
	public List<ProductoDTO> parse(String producto) {
		throw new NotImplementedException();
	}

	/**
	 * Convierte un conjunto de {@link ProductoDTO} en un string
	 */
	public String parse(List<ProductoDTO> productoDTO) {
		throw new NotImplementedException();
	}
	
	/**
	 * Convierte un conjunto de {@link ProductoDTO} en un string
	 */
	public String parsePromociones(List<ProductoDTO> promocionesDTO) {
		StringBuffer promocionesStr = new StringBuffer();
		
		for (ProductoDTO promocionDTO : promocionesDTO) {
			promocionesStr.append(promocionDTO.getCodigo());
			promocionesStr.append(SEPARADOR_PROMOCION_PRECIO);
			promocionesStr.append(promocionDTO.getPrecio());
			promocionesStr.append(SEPARADOR_PROMOCIONES);
		}
			
		promocionesStr.deleteCharAt(promocionesStr.length() - 1);
		
		return promocionesStr.toString();
	}
}
